package com.test.flyweightDemo;

import java.util.HashMap;

/**
 * ${DESCRIPTION}
 *
 * @author muxiaoyu
 * @create 2017/06/19 14:14
 **/
public class ShapeFactory {
    /**
     * 实现享元模式，将某些重量级对象放入某个地方进行存储，下次需要使用时，直接返回该对象即可（下次需要使用的对象与先前保存的对象很大程度上类似）。共同的地方可重用，不同的地方重新制定参数（setter）
     */
    private static final HashMap<String, Shape> circleMap = new HashMap<String, Shape>();

    public static Shape getCircle(String color) {
        Circle circle = (Circle) circleMap.get(color);
        if (circle == null) {
            circle = new Circle(color);
            circleMap.put(color, circle);
            System.out.println("create circle of color:" + color);
        }
        return circle;
    }

}
